查看原文
科技

BMM 盲合并挖掘

Paul LayerTwo Labs 2023-08-18

侧链难题的最后一块:矿工的O(1)侧链验证。

侧链发展历史

现有工作

在追求比特币预测市场的目标时,我被侧链作为唯一现实的实施策略所吸引。2014年初,我甚至勾勒出了一些它们必须工作的方法[1]。我和我的朋友们在等待侧链开发的同时,致力于自己的项目。

一段时间后,我们完成了如此多的Hivemind-预测市场[2]工作,以至于双向挂钩(即“侧链”)拖慢了我们的速度。我把注意力转向了它,并能够在许多重要方面改进它。其中之一是要求提款证明使用“父”主链的PoW,而不是侧链的PoW。我指出,这有效地“私有化”了侧链[3],这样矿工就有动力确保活动侧链的投资组合是最佳的。

我在2016年夏季发表了关于“公共区块链生态”的演讲,评论了为什么我们希望确保只有“明智”的侧链[4](有用且非好斗)加入比特币家族。然后,在米兰[5],我将这一观点纳入了其逻辑结论,并暗示我们可以用侧链解决“扩容之争”(即,不是解决“扩容”本身,只是“争论”节点资源和tx费用之间的权衡是合适的)。

我确实想解决扩容的争论,但我的米兰之行还有第二个目的:将侧链概念推向最不受欢迎的结论!这将使我能够好好看看所有的反对意见。

一个挥之不去的抱怨

关于侧链的唯一剩余抱怨是它们可能会影响“矿工去中心化”。从那以后,我花了大部分时间试图弄清楚这个抱怨到底是关于什么的。[6]经过一番努力,我终于弄清了这个抱怨的真相。这是唯一可能的,因为抱怨者都[1]提出了一个首选场景“P”,[2]承认“P”相当于理论上可能已经发生的中立场景“N”。让我解释一下。

  1. 首选场景“P” 是由多重签名保护的“联合双向挂钩”。它实际上相当于银行或网站:资金进入一个地址,数据在一个黑暗/孤立的孤岛中流动,孤岛软件计算提款请求,多重签名官员决定谁/哪里汇款,他们签署正常的比特币交易。由于这种情况每天都在Coinbase等网站上发生,因此应该非常清楚,这对比特币密码系统既不是[a]可预防的,也不是[b]有害的。

  2. 网络场景“N” 是我建议的一个思想实验:如果矿工已经——并且秘密地——互相发送资源密集型扩展块怎么办?理论上,矿工可以要求对方拥有一个“可选扩展块”,每10分钟只有8TB的随机数据。换句话说,他们可能被“要求”(通过软分叉)居住在一个他们可以“选择”跟踪更大块的情况下。由于我们作为外部观察者,只会在(某些)块中看到随机的、不伦不类的哈希(某处),我们将无法注意场景“N”在过去是否被采用。人们承认这也是[a]无法预防的。如果可选区块对选择加入的矿工没有净收益(即新费用-新成本),[b]危害就不存在,但如果可选区块有净收益(并且很受欢迎),理论上可能会导致矿工去中心化问题。

因此,抱怨的含义是:如果矿工可以选择退出运行侧链节点,同时不遭受交易费用损失的机会成本,那就太好了。换句话说:矿工不做任何工作,但他们仍然得到tx费用!LOL!因为这个要求是,我想我已经接受了挑战。

规格说明

焦点

让我首先强调这四个事实:

  1. Drivechain已经假设每个完整的侧链节点也是一个完整的主链节点(即side:fullnode 也就是main:fullnode)。这创建了从 side:chain 到 main:chain 的稳定、长期的链接(即使它没有往复)。

  2. 一个或多个Side:users(具有完整的侧链节点)可能碰巧拥有主链上的(不相关的)BTC,这纯粹是环境的意外。

  • Side:users 在这些资金之间基本上是无动于衷的(他们的4个 side:BTC 对他们的4个 main:BTC),但 main:miners 不会无动于衷——他们会强烈喜欢主要:BTC。(稍后,我们将利用这样一个事实,即 main:funds 已经被矿工“预先验证”。)
  • 更具体地说,我们可以将“v”定义为 side:block 的“value”,定义为(side:block - epsilon的总txn费用)。侧链节点可能在任何给定时间碰巧拥有父主链上的v数量的BTC。
  • 节点,即使他们进行零挖矿,也可以构造一个有效的区块/块头,在这个区块/块头中,他们支付自己100%的交易费用。当然,这通常是毫无意义的,因为没有理由期望头部满足难度目标(如果节点没有做大量 hash  运算)。

  • 任何愿意支付v或更高的攻击者已经可以填充一个块(使用垃圾邮件)。因此,今天,我们隐含地假设攻击者永远不愿意为每个区块支付v,以(暂时)对区块链进行DoS。

  • 这个想法

    考虑到这一点,我们在边:side:node “Simon” and a main:miner “Mary” 之间分配劳动力。

    • Simon(side:node)知道 side:block 值v,Simon也碰巧拥有 main:BTC 的v值。Simon希望Mary将(“关键哈希”)h*包含到 mainchain coinbase 中。如果这样做,side:block 将被成功合并开采。如果Simon可以使他的区块被合并开采,Simon可以声称 side:BTC 的v值。
    • Mary main:miner 对侧链上的任何东西都一无所知,但她确实有能力将东西包含在mainchain coinbases 中(几乎没有成本)。Mary更喜欢钱多而不是钱少。

    因此,该方案适用于 side:node 支付 mainchain:v 到 main:miner ,当且仅当矿工将在 mainchain:coinbase 中包含h时。side:node将此h视为找到的side:block,尽管如果它违反了任何side:规则,它可能会在以后被解释为无效(或,为空)。在许多情况下,(如果其他节点从未收到任何交易数据,或者如果这些数据中的任何一个无效),区块很可能被side:node孤立,因为它们构建了最重的有效side:chain。因此,Mary不需要知道她包含什么或为什么(一个小例外,请参阅下面的“问题”)。

    世界上的Simon斯为自己保留epsilon,这补偿了他们运行一个完整的节点,并提供了这项服务。随着当前side:block的交易费用增加,Simon斯可以向Mary提供更大的v。由于Mary总是会寻找她能找到的最大v,这将是一个完全竞争的市场,epsilons将尽可能低。这有一个有益的副作用,即当所有Simon斯组装side:block时,他们都有强烈的费用最大化激励。此外,Simon斯因组装无效块而受到惩罚——Simon因此获得零,但仍必须向Mary支付全价。

    以这种方式合并挖掘的每个区块都将被视为满足侧链的“难度目标”。通过这种方式,主链将始终“负责”,并且侧链变得“太受欢迎而不利于自身”的危险较小。这也可能允许我们从侧链头中删除冗余数据字段。

    执行这份智能合约

    这种安排可以用一个新的OP代码来强制执行,我们可以称之为“OP_is_h_in_coinbase”。如果h*实际上包含在coinbase txn中,这可以用来{从X到Y支付v}。这个OP可能要求Mary提供[1]一个主链区块头(或引用一个的方式),[2]从头的Merkle根到头的交易集中的coinbase txn的路径,以及[3]coinbase txn本身。

    操作代码需要检查

    1. 标头实际上包含在区块链a=200个区块前(或其他)。
    2. 路径确实从有效标头链接到coinbase。
    3. 事实上,coinbase确实在适当的位置包含h*。

    像往常一样,通过使用闪电网络,我们可以避免实际上需要在链上使用这个OP代码…除非(像往常一样)有人试图破坏协议,否则它都可以在链下。这是幸运的,因为这些txns比平均水平大,我们不希望在链上广播它们。

    处理重组

    追求智慧[7],我们根本不希望侧链影响主链;然而,两条链都需要重组的自由。例如,考虑一个“DAO侧链”,它包含一个关键bug,使得用户想要重组链。我们能在不影响父主链的情况下完成回滚吗?是的,这很简单:

    如果DAO在这个方案下是比特币侧链,开发者可以只回滚“DAO部分”,而不会干扰比特币主链或任何其他侧链。链没有分裂,(几乎)每个人都得到了他们想要的。(当然,除了黑客。除了不执行[8]一份明确合同[9](为什么要制定一份?)或任意执行合同[10]所固有的矛盾。此外,我永远不会得到我最喜欢的视频[11],也不会帮助《大人物》赢得2016年最具影响力奖[12]。)

    其他影响

    更好的SPV更好的合并采矿

    像往常一样,侧链上的SPV模式不仅需要side:header,还需要父:header,以及从每个父:header到每个side:header的“链接数据”。然而,side:header不需要两倍大(通常情况下)。许多数据字段是不必要的(因为没有难度调整),或者已经移动到每个父:header的“链接数据”中。对于每个父:header,此数据是以下两项:[1]从父:header的hashMerkleRoot到coinbase txn的路径,以及[2]coinbase txn本身(或者,证明它包含h*)。

    由于side:spv-client已经必须是main:spv-client,main:header不需要额外存储时间。因此,该方案提高了侧链SPV模式的效率(相对于合并挖掘的Altcoin)。此外,如果侧链很多,则可以重用从header到coinbase的[1]路径和[2]coinbase,从而节省更多。

    通过“预定义的coinbase real”可以进一步提高效率。通常,合并挖掘只是在coinbase中“包含一些数据”,并希望合并挖掘的节点稍后会弄清楚这一切。然而,这种类型的合并挖掘可以在主链coinbase上强加(或假设)一些结构。然后,每个承诺都可以包含特定于侧链的前缀,例如nmc:6hyfli…或hvm:s83lHe…。这可以通过“轻触”来完成-而不是通过软分叉强制执行规则,侧链节点可以简单地忽略除了第一个包含的h*(给定前缀)之外的所有内容。或者,我们可以使用预定义的(此后不可更改的)序列,将一些coinbase字节唯一地映射到每个活动侧链(这将节省更多空间,但不太灵活)。

    问题

    “盲合并挖矿”的一个缺点是,如果矿工根本不验证侧链,谁对链出价最高(持续),谁就可以发送3个月长的无效标题流,然后提取所有存入侧链的硬币。由于挖矿是盲目的,侧链提取安全级别是SPV,永远保持盲目的矿工无法判断谁“应该”真正获得资金。

    然而,如果出现争议,(关于谁“应该”从侧链中获得资金)矿工可以暂时“升级到完整节点”。而之前他们没有运行侧链软件,现在他们(暂时)成为完全参与者。这样的升级是耗时的(矿工必须运行这个软件,允许它确定所有标头的位置,标头的每个区块中的所有数据,以及这些数据的有效性)但是矿工有很长的时间(几个月)来做这件事。他们因此确定了最重的有效链,从而解决了争议。需要注意的是,只有当存在合法的“争议”时,争议解决才是必要的——如果哈希器信任他们的池运营商,而池运营商相互信任,那么在实践中,争议只需增加一两个节点即可解决。

    因此,有一个inbult机制可以以客观和加密的方式(即不信任)解决任何争议。因为它非常有效,所以不太可能被需要或使用。

    有人在乎吗?

    我期望矿工,在所有情况下,只运行侧链节点。换句话说,我不认为矿工会真正关心这个想法,“盲合并-挖矿”,足以使用它。这是因为“有视力的挖矿”的边际成本已经很低了——只是更多的软件。

    当然,一旦side:node开启,可能会有额外的激励升级到数据中心,这让一些人感到困扰,因此这篇文章。这种激励是一种可变成本的情况,与购买额外ASIC(或在大型海运大小的容器中购买它们[13])的激励没有什么不同。事实上,在我们优化的SPV和SPY挖矿世界中,人们可能会认为这个提议对挖矿不利:通过允许矿工在不‘支付’带宽成本的情况下包含交易,我们鼓励矿工在不验证交易的情况下包含交易。具有讽刺意味的是,这也一点也不困扰我,但它往往会困扰那些被数据中心困扰的人!有些人你就是无法取悦!

    或者我们可以吗?毕竟,矿工可以随心所欲地在‘盲’和‘非盲’版本之间自由移动(通过拒绝运行,或选择运行自己的完整节点)。因此,当~投诉者处于数据中心恐惧症模式时,他们可以使用盲合并挖掘,但当他们决定关心验证时,他们可以以传统方式(通过运行完整的侧链节点)进行验证。因此,即使是不一致的人也可能处于持续的快乐状态(或不快乐,我想)。

    结论

    我介绍了“盲合并挖矿”。该技术利用父链与其侧链之间的经济关系,使合并挖矿过程对双方都更精简。侧链的节点会做矿工通常会做的所有事情,然后贿赂矿工批准他们的一方:区块。贿赂发生在主链上(顺便说一句,这就是为什么这种操作在主链上是不可能的——它需要一条“正常”链已经存在)。

    更新

    两个注意事项:

    • 功能规格[14]
    • 关于最大化侧到主吞吐量的设计说明[15]
    作者:Paul Sztorc @ 2017年1月30日
    译者:Jack3.14
    来源:https://www.truthcoin.info/blog/blind-merged-mining/

    参考资料

    [1]

    2014年初,我甚至勾勒出了一些它们必须工作的方法: https://bitcointalk.org/index.php?topic=492969.msg5434717#msg5434717

    [2]

    Hivemind-预测市场: https://bitcoinhivemind.com/

    [3]

    有效地“私有化”了侧链: https://www.youtube.com/watch?v=xGu0o8HH10U&list=PLw8-6ARlyVciMH79ZyLOpImsMug3LgNc4&index=1

    [4]

    “明智”的侧链: http://www.truthcoin.info/blog/wise-contracts/

    [5]

    在米兰: https://www.youtube.com/watch?v=Gzg_u9gHc5Q&t=6575s

    [6]

    试图弄清楚这个抱怨到底是关于什么的。: http://www.truthcoin.info/blog/mirage-miner-centralization/

    [7]

    追求智慧: http://www.truthcoin.info/blog/wise-contracts/

    [8]

    不执行: http://www.shakespeare-navigators.com/merchant/MerchantText41.html#99

    [9]

    明确合同: https://web.archive.org/web/20160704190119/https://daohub.org/explainer.html

    [10]

    任意执行合同: http://www.truthcoin.info/blog/wise-contracts/#value-of-smart-contracts

    [11]

    我最喜欢的视频: https://www.youtube.com/watch?v=_O5fdMFKEC0

    [12]

    最具影响力奖: http://www.coindesk.com/coindesks-influential-people-blockchain-2016/

    [13]

    在大型海运大小的容器中购买它们: http://bitfury.com/products#container-datacenter

    [14]

    功能规格: https://www.truthcoin.info/images/bmm-outline.txt

    [15]

    设计说明: https://www.truthcoin.info/images/max-value-throughput.txt

    历史文章


    About LayerTwo Labs

    LayerTwoLabs 由比特币重大升级提案BIP300、BIP301提出者、耶鲁大学经济学家 Paul Sztorc 领衔创办,比特币核心开发者CryptAxe(2016-至今)、Luke Dashjr(2012-至今)联袂开发,北美比特币OG亿万富翁参与投资,POW共识机制创造者、HashCash、BlockStream创办人 Adam Back,Nostr 创始人 @fiatjaf 大力支持。

    LayerTwoLabs目标旨在推动比特币重大升级提案BIP300、BIP301,通过DriveChain来让比特币具备高度可拓展性、隐私、更好的UX体验,同时支持多种侧链开发,旨在把去中心化应用和区块链的其他拓展功能引入比特币生态,以实现比特币长期健康发展。

    LayerTwoLabs已经完成400万美金天使轮融资,主要投资者均为比特币核心开发者和早期贡献者,其中包括亿万富翁、北美区块链行业早期参与者等知名人士


    关注我们

    • Website: https://layertwolabs.com/
    • GitHub: https://github.com/LayerTwo-Labs
    • Twitter: https://twitter.com/layertwoasia
    • Telegram: https://t.me/layertwolabsasia
    • Medium:  https://medium.com/@layertwolabsasia
    • Discord:  https://discord.gg/Pvd2aQTv2T
    • BiliBili: https://space.bilibili.com/166496555


    加vx助手:LayerTwo_Labs,入群 :-)

    扫码入群

    LayerTwo Labs


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存